Repository (repo) | A storage location for your project's files and history. |
Local repository | The copy of the repo on your computer. |
Remote repository | The copy of the repo stored on a server (e.g., GitHub). |
Commit | A saved snapshot of your project at a specific point in time. |
Staging area (index) | The place where changes are prepared before committing. |
Branch | A separate line of development. |
Main/Master branch | The primary branch where production-ready code lives. |
Feature branch | A branch used to work on a specific feature or task. |
Merge | Combining changes from one branch into another. |
Merge conflict | When two changes affect the same part of a file and Git can’t merge automatically. |
Fetch | Downloading changes from a remote repo without applying them to your code. |
Pull | Downloading changes from a remote repo and merging them into your branch. |
Push | Sending your local commits to the remote repo. |
HEAD | A pointer to your current commit/branch. |
Detached HEAD | When HEAD points to a specific commit instead of a branch. |
Reset | Moving HEAD and optionally changing the staging area or working directory. |
Revert | Creating a new commit that undoes a previous commit. |
Clone | Making a full copy of a remote repo locally. |
Tag | A label for a specific commit, often used for versioning. |